#ifndef __GLOBALMESSAGE_H__
#define __GLOBALMESSAGE_H__

#include <stdbool.h>


#define NameSize 20
#define ContentSize 1024
// 在线用户结构体
struct ClientInfo
{
    char ClientName[NameSize];
    int sock;// 套接字
};
typedef struct ClientInfo CInfo;

CInfo * CreateCInfo(const char *name, int sock);
void PrintCInfo(void *p);// 打印,

// 匹配：收到CHAT信息，在用户列表里找到发信息的用户名
bool IsClientNameEqual(void *clientPtr, void *clientName);// 第一个参数是用户结构体指针(是链表里面的)，第二个参数是用户名(要查的)

bool IsClientSockEqual(void *ClientPtr, void * sock);

// 功能需求
enum Request
{
    LOGIN = -2,// 登录
    SIGUP = -1,// 注册
    CHAT = 1,
    BROADCAST, // 所谓的广播就是给除自己以外的所有在线用户列表里面的其他用户发
    ONLINELIST, // 在线列表显示

    SENDFILE, // 发送文件

    MYCLOUD, // 我的云盘
    FILELIST = 128,      // 查看网盘文件列表
    UPLOAD,        // 上传
    DOWNLOAD,      // 下载
};

// 信息结构体
struct GlobalMessage
{
    char FromName[NameSize];// 信息来源
    char ToName[NameSize];// 信息目标
    char Content[ContentSize];// 信息主体

    int flag;// 功能标志位
};
typedef struct GlobalMessage MSG;// 简化


#endif